package com.stu.exercise.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("orders")
public class Orders {

    @TableId(type = IdType.AUTO)
    private Integer id; // 订单ID

    private String orderNumber; // 订单编号

    private Integer userId; // 用户ID

    private Integer equipmentId; // 器材ID

    private Integer quantity; // 购买数量

    private BigDecimal totalPrice; // 订单总金额

    private Integer orderStatus; // 订单状态 （0：待支付，1：已支付，2：已发货，3：已送达，4：已取消）

    private String paymentMethod; // 支付方式（信用卡、微信、支付宝）

    private String shippingAddress; // 送货地址

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime orderDate; // 下单时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime shippingDate; // 发货时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deliveryDate; // 送达时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt; // 订单创建时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt; // 订单最近更新时间

    @TableField(exist = false)
    private String cname;
    @TableField(exist = false)
    private String ename;
}
